package com.tianhao.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.util.List;

/**
 * Author: qiang.zhang 2020-11-25 10:42
 * Description: 通用接口响应信息DTO
 */
@Data
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class ResultDTO<T> {

    /**
     * 接口调用成功与否标识:成功ture，失败false，对于只关心接口是否成功，不关心接口具体调用情况的可以只判断这个标识
     */
    private boolean success;
    /**
     * 状态码，成功:200,程序异常:500,程序部分数据处理错误:502。状态码可以对应到实际情况，相比于success，更能适应各种情况
     */
    private int code;
    /**
     * 接口响应信息
     */
    private String message;
    /**
     * 可以存失败的数据，按需使用，接口处理失败的数据可以存在该集合中
     */
    private List<T> failData;

    public ResultDTO(boolean success, int code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    public ResultDTO(boolean success, String message) {
        this.success = success;
        this.message = message;
    }

    public ResultDTO() {
    }
}